#ifndef _RENDER_RESOURCE_MANAGER_H_
#define _RENDER_RESOURCE_MANAGER_H_
#include "PCH.h"
#include "BlendState.h"
#include "DepthStencilState.h"
#include "RasterizerState.h"

namespace DeviousRenderer
{
	class ResourceManager
	{
	public:
		ResourceManager();
		virtual ~ResourceManager();

		int							CreateBlendState(BlendStateConfig*	config);
		int							CreateDepthStencilState(DepthStencilViewConfig* config);
		int							CreateRasterizerState(RaterizerStateConfig* config);

		BlendStatePtr				GetBlendState(int index);
		DepthStencilStatePtr		GetDepthStencilState(int index);
		RasterizerStatePtr			GetRasterizerState(int index);

	protected:
		std::vector<BlendStatePtr>				m_vBlendStates;
		std::vector<DepthStencilStatePtr>		m_vDepthStencilStates;
		std::vector<RasterizerStatePtr>			m_vRasterizerStates;

	};
}
#endif//_RENDER_RESOURCE_MANAGER_H_